package com.yangye.picommon.core.service;

import com.yangye.picommon.model.page.PageRequest;
import com.yangye.picommon.model.page.PageResult;

import java.util.List;

/**
 * 通用service
 * @author yangye
 * @date 2019/3/29 0029
 */
public interface BaseService<E> {

    /**
     * id查询
     * @param id
     * @return
     */
    E get(Long id);

    /**
     * 对象方式查询
     * @param entity
     * @return
     */
    E get(E entity);

    /**
     * 查询全部
     * @param entity
     * @return
     */
    List<E> findAll(E entity);

    /**
     * 分页查询
     * @param entity
     * @return
     */
    PageResult<E> findPage(E entity, PageRequest pageRequest);

    /**
     * 新增
     * @param entity
     * @return
     */
    E add(E entity);

    /**
     * 批量保存
     * @param list
     * @return
     */
    int batchAdd(List<E> list);

    /**
     * 更新
     * @param entity
     * @return
     */
    E update(E entity);

    /**
     * 删除
     * @param entity
     */
    void remove(E entity);

    /**
     * 根据id删除
     * @param id
     */
    void remove(Long id);
}
